package com.zyht.wechat;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.alibaba.fastjson.JSONObject;
import com.zyht.common.bean.PropertiesUtilBean.PropertiesUtils;
import com.zyht.common.util.HttpUtils;

/**
 * <b>描述：</b>微信操作API<br/>
 * <b>作者：</b>zrb <br/>
 * <b>修改日期：</b>2016年6月26日 - 下午3:40:13<br/>
 *
 */
public class WechatOperations {

	private Logger logger = LoggerFactory.getLogger(getClass());
	
	public WechatOperations(){
	}
	
	/**
	 * <b>作者:</b> zrb<br/>
	 * <b>修改时间：</b>2016年6月26日 - 下午4:09:10<br/>
	 * <b>功能说明：</b>获取粉丝信息<br/>
	 * @param code
	 * @param appid
	 * @param appSecret
	 * @return
	 */
	public JSONObject getWebAccessToken(String code, String appid, String appSecret){
		
		String url = PropertiesUtils.getConfig("weixin.token.host");
		StringBuffer sb = new StringBuffer();
		sb.append(url)
			.append("?appid=")
			.append(appid)
			.append("&secret=")
			.append(appSecret)
			.append("&code=")
			.append(code)
			.append("&grant_type=authorization_code ");
		String result;
		try{
			result = HttpUtils.get(sb.toString());
		} catch (Exception e){
			e.printStackTrace();
			logger.error("Http请求异常：获取Access_token异常。");
			return null;
		}
		return JSONObject.parseObject(result);
	}
	
	/**
	 * <b>作者:</b> zrb<br/>
	 * <b>修改时间：</b>2016年6月26日 - 下午4:09:25<br/>
	 * <b>功能说明：</b>	刷新网页授权AccessToken<br/>
	 * @return
	 */
	public JSONObject refreshWebAccessToken(String appid, String refresToken){
		String url = PropertiesUtils.getConfig("weixin.token.refresh.host");
		StringBuffer sb = new StringBuffer();
		sb.append(url)
		  .append("?appid=")
		  .append(appid)
		  .append("&grant_type=refresh_token")
		  .append("&refresh_token=")
		  .append(refresToken);
		String result;
		try{
			result = HttpUtils.get(sb.toString());
		} catch (Exception e){
			e.printStackTrace();
			logger.error("Http请求异常：刷新Access_token异常。");
			return null;
		}
		return JSONObject.parseObject(result);
	}
	
	public JSONObject getFansInfo(String accessToken, String openid){
		String url = PropertiesUtils.getConfig("weixin.access.userinfo.host");
		StringBuffer sb = new StringBuffer();
		sb.append(url)
		.append("?access_token=")
		.append(accessToken)
		.append("&openid=")
		.append(openid)
		.append("&lang=zh_CN");
		String result;
		try{
			result = HttpUtils.get(sb.toString());
		} catch (Exception e){
			e.printStackTrace();
			logger.error("Http请求异常：刷新Access_token异常。");
			return null;
		}
		return JSONObject.parseObject(result);
	}
}
